package com.dd.stack.mybatisplus.pojo.DO.oracle;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.Builder;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * @Author liuxianmeng
 * @CreateTime 2025/10/29 3:35
 * @Description 员工信息实体类 对应数据库表：employees_oracle
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("employees_oracle")
public class EmployeeOracleDO {

    /**
     * 员工ID - 主键，自增
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 员工姓名
     */
    private String name;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 薪资
     */
    private BigDecimal salary;

    /**
     * 是否经理 (0-否, 1-是)
     */
    private Integer isManager;

    /**
     * 入职日期
     *
     * 格式化前："2020-03-14T16:00:00.000+00:00"
     * 格式化后："2020-03-15 00:00:00"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime hireDate;

    /**
     * 创建时间
     *
     * 格式化前："2020-03-14T16:00:00.000+00:00"
     * 格式化后："2020-03-15 00:00:00"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createdAt;

    /**
     * 简历内容
     */
    private String resume;

    /**
     * 便捷方法 - 判断是否是经理
     */
    public boolean isManager() {
        return isManager != null && isManager == 1;
    }

    /**
     * 便捷方法 - 设置经理状态
     */
    public void setManager(boolean manager) {
        this.isManager = manager ? 1 : 0;
    }
}
